(See "Bolo.futureplans" for details of what is coming in the next release)
Known problems
~~~~~~~~~~~~~
Occasionally Bolo may get a PPC (Program-To-Program Communication) Toolbox error at game start, particularly when playing by modem. If you have MacsBug installed, you can simply hit Command-G (for "Go") and Bolo will continue. This will be fixed in the next release. (If you don't have MacsBug installed, it will just say "Unimplemented Trap" and you will have to restart.)
The "New Game" menu command is not very reliable. Sometimes it seems to not quite fully reset the game to the initial state properly. If it causes you problems you may wish to avoid using the "New Game" menu command and instead quit and restart Bolo between games.
Release notes, in reverse order
~~~~~~~~~~~~~~~~~~~~~~~~
0.99.7 8th December 1995
~~~~~
• Eliminated PPCInform error -903 due to race condition. PPCPoll was being called before PPCInit.
• Fixed bug where rejoin didn't work.
0.99.6 15th May 1995
~~~~~
• Fixed crash when switching out of Bolo during game startup if "Automatically Hide Windows" was enabled (it was hiding the game window before it was even created!)
• Fixed crash starting up on Mac Plusses running System 6.
• Fixed crash in modem mode
• Made modem mode do "+++ ATH" when you finish playing, to hang up the phone.
• Fixed bug where explosion was not drawn when your own tank gets hit by a shot.
• Fixed bug where disabling controls with Option-Click didn't work correctly.
• Fixed bug where menu command-key equivalents wouldn't work in dialog boxes.
• Fixed bug where locking out new players did not work as expected.
• Fixed bug where you could build pillboxes and buildings under your tank.
• Fixed bug where it was too easy to push tanks onto pillboxes and buildings.
• Made it so that if you *do* manange to crush a tank against a building, it explodes.
• Added "Pillbox view" label to screen to show when you're in pillbox view mode.
• Added option not to highlight visible areas in map overview (makes it a bit faster).
• Improved zoom-in & zoom-out icons on the map overview window
• Added newswire message whenever anyone changes their "allow new players" setting.
• When autoscroll is temporarily suspended (diamond mark in the menu) because you manually scrolled the screen with the cursor keys, pressing the 'Tank View' key (Return) now reactivates full autoscroll.
• Brains now get access to the map overview window and some other game information.
0.99.5 28th April 1995
~~~~~
MAP OVERVIEW
• Added "Map Overview" window which shows everything you can see.
• Areas you have seen, but cannot see now, are shown greyed out as you last saw them.
• Areas you have never seen show black.
• Map Overview window can be arbitrarily resized, scrolled and zoomed.
• "High Contrast" option to help distinguish allies from enemies on very small scale map views.
• One-click view reset buttons to realign view to predefined useful positions:
* Tank Reset button to move overview to show tank centred in the window.
* Island Reset button to move and zoom overview to show entire island in the window.
GRAPHICS
• Rewrote "tank label" code to make labels be just another kind of moving object on the screen, like tanks, shells etc. In 0.99.2 labels were added on top after the rest of the screen had been drawn, resulting in unpleasant flicker, especially on 16 and 32 bit screens.
• Added options to display numeric labels on pillboxes and refuelling bases, to make it easier to communicate unambiguously with other players, and especially with Brains, who find it extremely difficult to understand phrases like "that pillbox in the corner by where we saw Bill five minutes ago."
• Added "dead reckoning" mode to smooth out the movement of tanks when netlag is high.
USER INTERFACE
• Added "New Game" menu command, so you can start a new game without quitting.
• Added support for Gravis MouseStick II, and compatible joysticks.
• Reorganized menus, so that window related items are on the "File" menu, graphics related items are on the "Edit" menu, game controls are on the "Bolo" menu, messaging is on the "Players" menu, and tank control (autopilot selection) is on the "Control" menu.
• Added map preview to "Choose Map" dialog (Extended Standard File Dialog).
• Added option to remember your player name in the preferences file.
• Gunsight setting is now remembered in preferences file.
• Added option to deactivate ability to hide gunsight via the keyboard range controls.
• Added facility to assign multiple keys to the same function.
• Added facility to option-click a key setting to disable that tank control (for experiments where you wish to have different tanks with different facilities).
• Added switches to select whether you receive messages from the On-line assistant and from the newswire.
• Added new newswire message confirming when you are invited into an alliance, and who by.
• Re-architected main loop to allow "movable modal" dialog boxes.
NETWORKING
• Added "Allow new players" menu option. If you turn this option off, your Mac will stop responding to requests to join the game. If every player in a game turns off "Allow new players" then no new players can join that game.
• Program changes to reduce the effects of netlag, like the 'enchanted canoe' effect.
MISC
• Improved timing by using Extended Time Manager on Macs that have it (ie System 7). All tanks should now go the same speed. (Let me know if you find any measureable differences.)
• Added option to give Brains an advantage to make them more challenging opponents. With this option enabled, Bolo tells Brains the location of every base, pillbox and tank on the map even if they are out of visual range. (Use with caution in public games -- cyborgs currently get the same advantage.)
• Substantially improved Standard Autopilot.
• Improved start position allocation for maps with very few start squares defined, to cope better with certain "creative" map designs. For example, if you have a map with only two start squares, and you have a game of two teams where each team has a pillbox close to one of the start squares, then each team will effectively have their own 'private' start square, because with only two start squares to choose from when bringing a new tank into the game, Bolo will choose the one near the friendly pillbox, not the one near the hostile pillbox.
• Added ExitToShell handler (thanks Matt Slot) so that if you are forced to kill Bolo with Command-Option-Escape, it will try to tidy up and remove its system tasks so that your Mac won't bomb. This should help make life simpler for people writing brains. As they say, "Your mileage may vary." Or, as other people say, "Caveat Emptor." Take your pick. If you're not a programmer, don't be misled into thinking that you can use this to magically resurrect your Mac from a System Error.
• Added game logging, to allow you to record a game for later replay. Unfortunately I didn't get time to write the replay command, so right now it's not much use.
BUG FIXES
• Fixed bug in alliance protocol.
• Fixed bug where status indicators were sometimes drawn in the wrong window.
• Fixed "Claiming hostile base by using netlag to let you build a building and jump on top of it" bug.
• Fixed bug where alliance status indicators were not updated during the game start delay period (allowing alliance formation is the main reason for having the game start delay).
• Fixed bug where Bolo could scroll the mouse pointer completely off the screen, causing a crash.
• The mouse pointer should now be set correctly in all cases. I never noticed the mistakes because I run Christopher Wysocki's excellent freeware program "Escapade", and one (of the many) useful things that this Control Panel does is to fix mistakes setting the mouse pointer. Apple really should have included most of the things that Escapade does in the standard Dialog Manager behaviour.
The 0.99.3 and 0.99.4 versions were not publicly released.
0.99.2 9th June 1993.
~~~~~
• Fixed bug in code for autopilot control of joining and leaving alliances.
0.99.1 3rd June 1993.
~~~~~
• Fixed bug where players menu could get truncated.
• Fixed bug where tank labels could leave trail of letters on the screen.
• Fixed bug where leaving alliances did not work correctly (any pillboxes you put down after that would be hostile to you as well as everyone else).
• Added a "Network Info" window, giving more information about the game.
• Added option to notify Mike Ellis's BoloTracker whenever you start or join a game.
0.99 26th May 1993.
~~~~
• Added plug-in brain interface. (See accompanying sample code).
• IMPORTANT: To use the new Autopilot in Bolo 0.99, you must have a folder called "Brains" in the same folder with the Bolo 0.99 applications, and you must have some Brain files (such as the "Standard Autopilot" brain) inside it.
• To help prevent cheating, whenever you save the map, it is announced to all the players.
• Added some more colour to the screen display.
• Removed the debugging window, and improved the message system some more.
• Added "News Wire" service giving news about events in the game.
• Fixed bug in display of the game start delay count-down.
• Added time limit option for people who don't have unlimited time to play.
• Added password access protection on games, to keep out vandalistic players.
• Added "Game Info" window, to show the current map name, game time limit, etc.
• Added "System Info" window, to show CPU usage, packet loss rate, etc.
• Added option to display identifying name labels next to each tank on the screen.
• Included separate option as to whether you want your own tank to be labelled.
• Fixed a bug when using maps with fewer than 16 start squares defined.
• It is now not possible to repair dead pillboxes dropped in deep sea.
• It is now not possible to try to build a bridge on (or under) your boat.
• Added support for UDP/IP across the Internet. (I'm not making any promises about games successfully spanning the whole world yet).
• Added option to disallow computer controlled tanks from a game.
• Added option to make all mines visible to everyone.
• The tank controls now ignore keys pressed in conjuction with the 'Command' key so that you can use command-key menu shortcuts without accidentally moving the tank at the same time (unless you have defined the Command key as one of the tank controls).
• For multiple users sharing the same Mac, you can now have your own preferences file. Just drag a copy of "Bolo Preferences" out of the System Folder, rename it (if you like) and then double click that icon to start up Bolo with your own preferences.
• Bolo now does a quick scan of all the AppleTalk zones and indicates where it finds players. To avoid annoying network administrators, it only sends a single NBP packet to each zone and does not attempt resend those that get lost, which means that occasionally players may fail to show up in the zone scan. Don't complain -- if I did any more your network administrators would probably ban Bolo.
• IMPORTANT: Change of alliance mechanism:
1. Select a person whose alliance you would like to join on the "Players" menu and select "Request Alliance" on the "Bolo" menu.
2. If agreeable, that person should then select your name on their "Players" menu and then select "Request Alliance" or "Invite New Allies".
If you are in an alliance, the menu choices are "Invite New Allies" and "Leave Alliance". If you are not, then the menu choices are "Request Alliance" and "Cancel Request".
Take care that you have the correct players selected on the "Players" menu when requesting/inviting.
If you are already in an alliance, you must select “Leave Alliance” first before you can join a new one.
0.98 21st February 1993.
~~~~
• Finally fixed the alternating black/white message characters on old Macs.
• Hopefully, I've eliminated map inconsistencies (invisible/unrepairable/phantom pillboxes etc.) which occasionally occurred due to bugs in network error handling code.
• Names in "Players" menu now include zone names.
• More minor improvements/bug fixes to the key setting dialog box.
• In my overenthusiasm about how much faster Bolo is now, Bolo 0.96 increased the maximum packet rate to 50 per second. This turned out to be just too much for SEs to handle, so I've cut it back to 25 packets per second.
• Fixed the bug where your parachuting man does not display properly on other screens, and the bug where you sometimes would not lose a pillbox when you die (it thought your parachuting man was carrying it).
• Fixed bug which could make it difficult to pick up pillboxes dropped in the sea.
• Fixed bug which (a) allowed the man to lay mines "for free", and (b) did not allow him to lay mines in forest.
• Yet another sound manager workaround. Let's see if this fixes it.
• Fixed bug which could crash 68000 Macs when you quit.
• The man now farms trees 'carefully' without setting off mines. Other heavy construction (roads, buildings etc.) will still set off mines.
• Fixed endless explosion bug when you try to run off the edge of the world.
• "Hide Windows" (only really useful under System 6) now correctly hides the message window as well as the main game window.
• Cute visual effect when the tank is destroyed.
• Fixed bug where kills/killed counts could appear in strange font.
0.97 5th February 1993.
~~~~
• Fixed bug that stopped you from repairing pillboxes.
0.96. 4th February 1993.
~~~~
GRAPHICS
• Fixed bug where mines do not display correctly in 32-bit colour ("Millions" mode).
• To make it more understandable on monochrome screens, Bolo now marks your own tank with a black ring, allied tanks etc. with grey, and hostile forces are white.
• For people who suffer from Red/Green colour blindness, Bolo now has a menu option to select an alternative colour scheme, similar to the mono one described above.
• Fixed cosmetic problem where Bolo could 'draw through' an After Dark screen saver.
NETWORK
• Apparently, due to a minor mistake, Bolo's network packets looked enough like RTMP packets to confuse some stupid routers (though we never had any trouble at Stanford). I have changed the DDP protocol type now, so this problem should not recur.
• Added option to start a new game even when there is already one running in the same zone (instead of being forced to join the existing game). My original thinking was that since Bolo is a multi-player game, then it doesn't make sense NOT to join the game which is already there. I hadn't realized how often the number of people wanting to play Bolo would exceed the 16 player limit.
• Added no-network single-player option to maximize battery life on PowerBooks.
• Improved protocol so that the network is not disrupted by players joining/quitting.
MINES
• If you lay a load of mines which no one else can see, and then quit the game, then they no longer vanish from the game when you do. Of course no-one can see them (this includes yourself if you decide to rejoin the game later).
• Tanks now have the capability to detect mines one square in front of them. If you are careful, and drive very slowly, you can see mines in time to avoid hitting them.
• Fixed bug which would allow you to build pillboxes on mines without them exploding.
• Bug Fix: Even though there are none in the Everard Island map, Bolo does allow maps to be defined which start with mines already on them, and these mines are INVISIBLE to all players. However, due to a bug in 0.95, the player who initiated the game (and ONLY that player) got to see all of these mines. This is now fixed.
• Fixed bug where Bolo would let you try (unsuccessfully) to lay mines on water.
• It is now no longer possible to head away from the island out into deep sea and keep going for ever. The island is now ringed by mines far out in the deep sea to prevent you from going too far.
PILLBOXES AND REFUELLING BASES
• The limit on the number of pillbox shells simultaneously in flight has been raised from 4 to 12. Pillboxes should now fire smoothly instead of in bursts of four shots at a time. The author's decision is final on this, so don't bother complaining.
• By overwhelming concensus, the plan to allow tanks to pick up and transport refueling bases (like the way you do with pillboxes) has been rejected, or at least postponed.
• Refuelling bases now have some sense of self preservation, and will not give you their last two units of armour, which would leave them completely vulnerable to attack.
• Fixed the "Dead but not destroyed" pillboxes which needed a couple of extra shots to finish them off before you could drive over them to pick them up.
• Fixed bug which would allow you to build pillboxes on top of half-shot buildings.
• Pillboxes now actively defend your refuelling bases for you -- if some hostile player comes and starts shooting your refuelling base, then nearby pillboxes will get angry and retaliate.
MAP FILES
• Bolo can now save the state of the map when you quit, and load that map in the next time you play. (Double-click the map file, or use the "Select Map" button in the "New Game" dialog). At the moment it only saves the map -- not alliance information, or pillbox ownership, or mine visibility.
• Bolo will also read the old BMAP format map resources. Create a resource file with creator code 'BOLO' and type 'BMAP' and place your BMAP resource in it with id 128.
• I had originally planned to write a map editor and create some alternative maps -- a pair of large islands connected by a narrow causeway of land, an archipelago of small islands connected by bridges, a forested jungle island, a Manhattan street map, etc. There are now several map editors (written by other people) and lots of maps on Sumex-aim, so I don't need to do this.
PREFERENCES & KEYBOARD SETTINGS
• All settings, including key assignments, are now saved in the Preferences Folder.
• Improved key setting dialog box to display current settings.
• Fixed bug in key setting dialog box -- it now ignores the Caps Lock key.
• By popular request, there is now an "Auto Slowdown" option which makes the tank automatically decelerate as soon as you release the "Go" button. Before you use this though, let me warn you: The result is that you hold the "Go" button down to go full speed, and let go to stop, making it almost impossible to drive at any speed in between. Also, due to deficiencies in certain Macintosh keyboards, if you are holding down two keys (eg. Go and Turn left) then it will not detect any other key presses (eg. shoot or lay mine). The choice is yours.
MISC
• Bolo now has three different game 'modes' which are chosen by the player who initiates the game. You can have an open game, where everyone gets free ammo, or a tournament, where you get some free ammo at the start of the game, but each new tank gets less and less as the game progresses, and a strict tournament for the serious players, where you never get any free ammo even for the very first tank.
• User selectable 'Join time' at start of game, so that everyone has time to join into the game before the play actually begins.
• Improved randomization so when you start a new game, your tank no longer always appears at the same starting location.
• The tree growing algorithm is now fixed so that trees will grow over the entire area of the new larger maps which many Bolo enthusiasts have created.
• By popular demand, 'free' boats no longer self destruct when you leave them. The new solution to boat overcrowding is that you can sink stationary boats just by ramming them, at no damage to yourself. As before, boats can only be left on shallow water -- if you try to leave a boat in deep sea it will sink.
• Message mode has been significantly improved, though it still needs more work.
• 'Autopilot' mode that you can engage if you are forced to leave the keyboard for a few moments, so that your tank will make some token effort to defend itself while you are away.
• Just for chuckles, you can set the 'Autopilot' to 'Aggressive' mode and watch it try to win the game by itself. It probably won't.
SYSTEM ISSUES
• I've done a workaround for the Sound Manager bug which makes it conflict with AppleTalk and occasionally produce those horrible screeching sounds. If you still get the screeching sounds ON A MAC RUNNING SYSTEM 7, please let me know. No promises about System 6 though. Sorry.
• Fixed bug which prevented dragging the window to a position ABOVE the menu bar on a multiple-monitor setup.
• Fixed bug where it was only possible to check the first eight players in the "Players" menu.
• Performance on low-end machines (Mac Plus, SE, Portable, Classic, PowerBook 100 etc.) should be noticeably improved.
• Minimum memory requirement reduced to about 300K (no colour or sound effects).
OLD CHANGES (originally appearing in sub-releases 0.95a to 0.95e)
• (since .95e) Fixed a bug which could make Bolo crash on 68040 Macs (eg Quadras).
• (since .95d) Fixed a bug which could make Bolo crash when starting up on Radius Pivot displays in landscape orientation, and possibly other systems as well.
• (since .95c) Improved low-memory operation by refraining from stupidly loading ALL the sounds it can until there is no memory left.
• (since .95b) Fixed minor AppleTalk Phase 1 omission (now selects 'home' zone as initial default in game start dialog).
• (since .95b) Fixed bug which made it possible for tank get on top of building and/or allowed man to build buildings underneath a tank.
• (since .95a) Improved network performance on Macs which do not provide a Deferred Task Manager (ie a Mac Plus or Mac SE without System 7, and perhaps some others).
0.95. 27th May 1992.
~~~~
• Finally, I have found the cause of the loss-of-ownership bug. It is an obscure timing error which only occurs on LocalTalk -- not on Ethernet, which is why I could never reproduce it on my own machine.
• BoloSounds now has its own icon. You will have to trash ALL old Bolo files on your hard disk (and remember to empty the trash), drag the new files onto your hard disk, and then restart your Mac with Command-Option held down to rebuild the desktop file.
0.94. 25th May 1992.
~~~~
• Fixed minor bug in startup code when you are the first player in a game.
• Fixed bug where sometimes your replacement combat engineer would not parachute in to the right place.
• Bolo now throws up a dialog box to stop you quitting accidentally when you hit Cmd-Q by mistake.
• Bolo now allows you to reclaim your old possessions if you rejoin a game you recently left. You must enter EXACTLY the same name, and check the "Reclaim old possessions" checkbox.
• Slightly changed the way cursor-keys scroll the screen. You now cannot scroll hostile objects (tanks and pillboxes) off the screen unless you turn off AutoScroll first (Bolo menu). If you turn off AutoScroll then you may get no warning of baddies approaching from your 'blind side', so be careful. If you try to drive your tank completely off the screen, then AutoScroll is automatically turned back on.
0.93. 13th May 1992.
~~~~
• Reduced network packet rate so it should run better on Classics etc. now.
• Fixed major bugs in code for non-Colour QuickDraw Macs (Plus, SE, Classic etc.).
0.92. 11th May 1992.
~~~~
• Fixed bug where sometimes when you fired, a trail of multiple shell images could appear.
• Workaround for a bug in QuickMail which destroys other programs' network connections.
• Improved startup time on large AppleTalk networks (over 100 zones).
• Improved performance under A/UX on low-end Macs.
• Fixed a bug where chains of mines could continuously explode.
• Added sound effects.
• Improved screen scrolling algorithm (I think).
• Fixed odd address error on 68000 machines. God I hate those.
• Added a bit of Balloon Help for the menus.
0.91. 1st May 1992.
~~~~
• Fixed bug where players who quit could leave 'phantom' tanks on other players' screens.
• Fixed bug where players joining a running game could enter in "request alliance" mode, which is undesirable because you should have to explicitly request an alliance.
• Fixed bug where a malformed packet on the network could get the game into a bad state where it got stuck in a loop with interrupts disabled.
• Fixed a bug that made tanks in forest completely invisible, even when got so close that you crashed into them. Tanks in forest now become visible when you get close enough to see them (about 3 map squares away).
• Added option to reconfigure the control keys.
0.90. 24th April 1992. First genuinely public release
~~~~
• Fixed it so after you die it won't put your new tank right next to a pillbox.
• Got rid of the five free shells every tank got when it restarted. Now you get some free shells, but it decreases as the game progresses until finally you get none. If one player controls all the refueling bases then the game is over. No more endless dragging out the end of the game. If you have no refueling bases (and noone will make you their ally) then you have no shells. End of game.
• Modified the 'easy start' feature intended for beginners. Giving your first tank 40 shells, 40 mines and a free boat was intended to make the game slightly less impossible for first time players. What happened was that players just kept quitting the game and rejoining to get lots of 'first' tanks. Now the easy beginner mode only lasts until the first pillbox on the map is killed. After that the game is on, and no more free lunch.
• When you shoot a base to capture it from another player, its appearance changes to let you know that you have killed it.
• When you quit the game, any personal possessions you have revert to neutral ownership. Any player joining the game later, and being assigned your old player number will not 'inherit' all your old property.
• When you layed mines using the TAB key, sometimes your allies could not see the mines. This is fixed.
• When you are killed it now waits slightly longer before blanking the screen so that you can see what it was that killed you.
• Added a count of how many other players you have killed,
• and a count of how many times you have been killed.
• Added "Players" menu so you can see who the other players are.
• Added very simple message system to allow players to type messages to each other.
"Dangerous" version. Wednesday 22nd April 1992. First (semi)public release.
~~~~~~~~~~~~~~~~
To my complete amazement, everything worked almost perfectly. There were minor logical flaws which people managed to discover and exploit, but no serious bugs in the network software, and no crashes. This version ran continuously for over 48 hours at Stanford with a varying set of players until it was replaced by version 0.9 on Friday 24th April.